<?php

/**
* Controlador que maneja las acciones del sistema de administracion
*/
class EmpleadoController extends Controller{
  
  
	   public function actionProfesionales(){
		 
		 $this->render('profesionales');
		 
	   }
	   
	   /**
		* accion alta empleado-profesional
		*/
	   public function actionAltaprofesional(){
		 $sistema=$this->AccesoSistema();
		 $model=new EmpleadoForm;
		 if(isset($_POST['ajax']) && $_POST['ajax']=='empleado-form')
		 {
			echo CActiveForm::validate($model);
			Yii::app()->end();
		 }
		 if(isset($_POST['registrar']))
		 {
			$model->attributes=$_POST['EmpleadoForm'];
			if($model->validate()){
				$nombreempleado=$model->nombre;
				$apellidoempleado=$model->apellido;
				$dniempleado=$model->dni;
				$especialidad=$model->especialidad;
				$transporte=$model->transporte;
				$sucursal=$model->sucursal;
				$direccion=$model->direccion;
				$numero=$sistema->agregarEmpleado($nombreempleado,$apellidoempleado,$dniempleado,$especialidad,$sucursal,$transporte,$direccion);
				if(!$numero==false){
					$model->nro_empleado=$numero;
					Dialogo::mensaje('Confirmacion', '<b>N° Profesional:</b> '.$numero.'<br><b> Nombre:</b>'.$model->nombre.'<br><b> Apellido:</b> '.$model->apellido
					.'<br><b>Dni:</b> '.$model->dni.'<br><b>Especialidad:</b> '.$model->especialidad.'<br><b>Sucursal:</b> '.$model->sucursal.'<br><b>Direccion:</b> '.$model->direccion);	
				}
				else{
					Dialogo::mensaje('Mensaje', 'DNI ya registrado');	
				}
				$this->redirect($this->createUrl('profesionales'));
			}
			
		 }
		   $this->render('altaprofesional',array('model'=>$model));
	   }
	   
	   
		/**
		* accion alta usuario-paciente
		*/
		public function actionEliminarProfesional(){
			 $sistema=$this->AccesoSistema();
			 $model=new EmpleadoForm;
			 if(isset($_POST['buscar'])){
				 if(isset($_POST['valor'])and !$_POST['valor']==''){
					 $resultado=$sistema->eliminarEmpleado($_POST['valor'],$_POST['tipo']);	
					 if($resultado==true){
						  //reasigna la variable usuario y extrae los valores correspondientes
						  $usuario=$sistema->get_empleado();
						  $model->nombre=$usuario->get_nombre_empleado();
						  $model->apellido=$usuario->get_apellido_empleado();
						  $model->dni=$usuario->get_dni_empleado();
						  $model->especialidad=$usuario->get_especialidad_empleado();
						  $model->transporte=$usuario->get_transporte_empleado();
						  $model->sucursal=$usuario->get_sucursal_de_trabajo();
						  $model->direccion=$usuario->get_direccion_empleado();
						  $model->nro_empleado=$usuario->get_nro_empleado();
					}
					else{
						  //mensaje de error empleado no encontrado
								Dialogo::mensaje('Mensaje Error', 'Empleado no encontrado');						
							}
				}
			}
			 if(isset($_POST['eliminar'])){
					$resultado=$sistema->confirmarEliminarEmpleado();
					if($resultado){
					   //usuario eliminado correctamente
						 Dialogo::mensaje('Confirmacion', 'Profesional eliminado correctamente');
					}
					else{
					   //error al eliminar usuario
						 Dialogo::mensaje('Error', 'Error al eliminar Profesional');
					}
					$this->redirect($this->createUrl('profesionales'));
			}
			 
			$this->render('eliminarprofesional',array('model'=>$model));
	   
		}
	   
		/**
		* Accion modificar empleado-profesional
		*/
	   public function actionModificarProfesional(){
			$sistema=$this->AccesoSistema();
			//$model=new EmpleadoForm;
			$model=new ModificarEmpleadoForm;
			 if(isset($_POST['ajax']) && $_POST['ajax']==='empleado-form')
			{
				echo CActiveForm::validate($model);
				Yii::app()->end();
			}
			if(isset($_POST['buscar'])){
			  //verifica si la variable usuario y compara los valores del formulario y los del usuario
			  if(isset($_POST['valor']) and !$_POST['valor']==''){
				  $resultado=$sistema->modificarEmpleado($_POST['valor'],$_POST['tipo']);			  
				  if($resultado==true){
				  //reasigna la variable usuario y extrae los valores correspondientes
					  $usuario=$sistema->get_empleado();
					  $model->nombre=$usuario->get_nombre_empleado();
					  $model->apellido=$usuario->get_apellido_empleado();
					  $model->dni=$usuario->get_dni_empleado();
					  $model->especialidad=$usuario->get_especialidad_empleado();
					  $model->transporte=$usuario->get_transporte_empleado();
					  $model->sucursal=$usuario->get_sucursal_de_trabajo();
					  $model->direccion=$usuario->get_direccion_empleado();
					  $model->nro_empleado=$usuario->get_nro_empleado();
				  }
				  else{
					//mensaje de error usuario no emcontrado
					Dialogo::mensaje('Error Busqueda', 'Usuario no encontrado');
				  }
				}
			 }
			if(isset($_POST['modificar'])){
					$model->attributes=$_POST['ModificarEmpleadoForm'];
					if($model->validate()){ 
						$resultadomodificar=$sistema->set_cambios_empleado($model->nombre, $model->apellido, $model->dni, $model->especialidad, $model->sucursal, $model->transporte, $model->direccion);
						if($resultadomodificar==true){	
							$model->unsetAttributes();
							Dialogo::mensaje('Mensaje Confirmacion', 'Datos del profesional guardados correctamente');
						}
						$this->redirect($this->createUrl('profesionales'));
				}
			}
			$this->render('modificarprofesional',array('model'=>$model));
		   }
		  
	   
		/**
		* accion buscar empleado-profesional
		*/
		public function actionBuscarprofesional(){
			$sistema=$this->AccesoSistema();
			$model=new EmpleadoForm;
			if(isset($_POST['buscar'])){
			  //verifica si la variable empleado y compara los valores del formulario y los del empleado
			  if(isset($_POST['valor']) and !$_POST['valor']==''){
				  $resultado=$sistema->buscar_empleado($_POST['valor'],$_POST['tipo']);			  
				  if($resultado==true){
					  $empleado=$sistema->get_empleado();
					  $model->nombre=$empleado->get_nombre_empleado();
					  $model->apellido=$empleado->get_apellido_empleado();
					  $model->dni=$empleado->get_dni_empleado();
					  $model->especialidad=$empleado->get_especialidad_empleado();
					  $model->transporte=$empleado->get_transporte_empleado();
					  $model->sucursal=$empleado->get_sucursal_de_trabajo();
					  $model->direccion=$empleado->get_direccion_empleado();
					  $model->nro_empleado=$empleado->get_nro_empleado();
				  }
				  else{
					//mensaje de error empleado no emcontrado
					Dialogo::mensaje('Busqueda', 'Empleado no encontrado');
				  }
				}
			 }
			 if(isset($_POST['limpiar'])){
				$model->unsetAttributes();
			 }
			 
			$this->render('buscarprofesional',array('model'=>$model));	
		}
	  
	  
	  
		/*
		*Filtro que permite controlar el acceso de empleados-profesional
		*/
		public function filters()
		{
			return array(
				'accessControl',
			);
		}
		
		/*
		*Reglas de Acceso que deniegan o permiten ciertas acciones
		*/
	   public function accessRules()
	   {
			return array(
			array('allow',  // permite a los usuarios registrados acceder a las acciones
			'actions'=>array('index','altaprofesional','eliminarprofesional','profesionales','modificarprofesional','buscarprofesional'),
			'roles'=>array('admin'),
			),
			array('allow',  // permite a los usuarios registrados acceder a las acciones
			'actions'=>array('buscarprofesional'),
			'roles'=>array('empleado'),
			),
			array('deny',//usuario no autenticado no puede realizar las siguientes acciones
			'actions'=>array('index','altaprofesional','eliminarprofesional','profesionales','modificarprofesional'),
			'users'=>array('empleado'),
			),
			array('deny',//deniego toda accion a usuario no autenticado
			'users'=>array('*'),
			),
			);
	   }

}
?>